Sistema de Nombrado en Java (JNDI) [Parte I]

Cada m�todo de nombrado de los interfaces Context y DirContext tiene dos formas sobrecargadas, una que acepta un nombre string (java.lang.String) y una que acepta un nombre estructurado (Name).

Por ejemplo, lookup() tiene estas dos formas.

lookup(java.lang.String)
lookup(javax.naming.Name)

.�Nombres String

Las sobrecargas que aceptan nombres java.lang.String son formas de conveniencia que permiten a los m�todos ser invocados sin que el llamador tenga que construir un ejemplar de CompositeName.

El argumento java.lang.String pasado a estos m�todos sobrecargados representa un nombre mixto y sigue las reglas de s�ntaxis especificadas en la clase CompositeName.

Por ejemplo, las dos siguientes llamadas a lookup() son equivalentes.

Object obj1 = ctx.lookup("cn=Ted Geisel, ou=People, o=JNDITutorial");

CompositeName cname = new CompositeName(
    "cn=Ted Geisel, ou=People, o=JNDITutorial");
Object obj2 = ctx.lookup(cname);

.�Nombres Estructurados

Las sobrecargas que aceptan un Name aceptan un ejemplar de CompositeName, CompoundName, o cualquier otra clase que implemente el interface Name.

Si el objeto es un ejemplar de CompositeName, es tratado como un nombre mixto. Un nombre mixto es un nombre que puede expandirse a varios sistemas de nombres, no s�lo al sistema de nombres en que se ha llamado al m�todo. Puedes ver la secci�n Nombres Mixtos de esta lecci�n para ver ejemplos de c�mo usarlos. En el peor de los casos, el nombre solo se expande en el sisema de nombres en el que se llam� al m�todo.

En la secci�n Trucos para usuarios de LDAP, por ejemplo, todos los ejemplos usan nombres string desde el espacio de nombres LDAP. Observa que incluso en el peor de los casos, el nombre todav�a es un nombre mixto; es decir, un nombre mixto con un s�lo componente.

Si el objeto no es un ejemplar de CompositeName, se le trata como un nombre compuesto -- un nombre que expande s�lo un espacio de nombres.

Puedes ver la secci�n Nombres Compuestos de esta lecci�n para ver ejemplos de uso de nombres compuestos.

.�Cu�ndo usar cada uno de ellos

Normalmente, nuestro programa usar� un nombre string si el usuario suministr� un nombre string. Podr�a usar un ejemplar de Name si se hubiera compuesto el nombre usando entrada del usuario. Por ejemplo en una aplicaci�n navegador, cuando el usuario atraviesa diferentes partes del espacio de nombres, la aplicaci�n podr�a necesitar componer nombres que directamente navegaran a trav�s de esas partes del espacio de nombres. Podr�a hacerlo creando representaciones string de los nombres de aquellas partes del espacio de nombres y siendo consciente y usando la s�ntaxis de nombres apropiada. O, podr�a usar ejemplares de Name creados con la ayuda de las utilidades proporcionadas por el JNDI.

Puedes ver la secci�n Manejar Caracteres Especiales de esta lecci�n para ver c�mo acomodar los caracteres especiales en un nombre que tiene conflictos con la s�ntaxis de nombres mixtos de JNDI.

COMPARTE ESTE ARTÍCULO

COMPARTIR EN FACEBOOK
COMPARTIR EN TWITTER
COMPARTIR EN LINKEDIN
COMPARTIR EN WHATSAPP
SIGUIENTE ARTÍCULO